home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / Ant Movie Catalog 3.5.0.2 / amc_install.exe / {app} / Scripts / AFdigitale (IT).ifs < prev    next >
Text File  |  2005-04-13  |  7KB  |  199 lines

  1. (***************************************************
  2.  
  3. Ant Movie Catalog importation script
  4. www.antp.be/software/moviecatalog/
  5.  
  6. [Infos]
  7. Authors=Pivello (see comments for changes authors)
  8. Title=AFdigitale
  9. Description=Get movie info from AFDigitale
  10. Site=http://www.AFdigitale.it
  11. Language=IT
  12. Version=10.03.2005
  13. Requires=3.5.0
  14. Comments=**Changes**|14.04.2004 First Public Release (Pivello)|02.02.2005 adapted to v.3.5.0 (Dinolib)|06.03.2005 rewrite html seek tags|10.03.2005 Revised for pivlib.pas Library use (Pivello)|11.04.2005 Adapted for page tags changes (Pivello)|11.04.2005 Removed tags from Description and Comments (Pivello) |13.04.2005 Fixed small bug: original and translated title exchanged (Pivello)
  15. License=*  The source code of the script can be used in   |*  another program only if full credits to              |*  script author and a link to Ant Movie Catalog  |*  website are given in the About box or in       |*  the documentation of the program               |
  16. GetInfo=1
  17.  
  18. [Options]
  19.  
  20. ***************************************************)
  21.  
  22.  
  23.  
  24. program AFdigitale;
  25.  
  26. uses
  27.   Pivlib; // Pivello's scripts common library
  28.  
  29. const
  30.  UrlBase = 'http://www.afdigitale.it';
  31.  QueryBase = UrlBase + '/edisport/afdigitale/dvd.nsf/DVDS?SearchView&Query=';
  32.  
  33. var
  34.  MovieUrl, MovieName, OriginalStr, TranslatedStr, PageStr:  string;
  35.  
  36.  
  37. // -----------------------
  38. // ANALYZE MOVIE DATA PAGE
  39. // IN:  none
  40. // OUT: set Ant fields
  41. // -----------------------
  42. procedure AnalyzeMoviePage;
  43. var
  44.   TempStr: string;
  45. begin
  46.   // Get packed title main page
  47.   PageStr := RemoveExtraChars(MovieUrl);
  48.   // image
  49.   GetPicture(UrlBase + getValue(PageStr, 'rowspan="2"><img src="','" width="',true,true));
  50.   PageStr := GetPageStr;
  51.   // Translated Title field
  52.   SetField(fieldTranslatedTitle, getValue(PageStr, 'color="#000080" face="Verdana">','</font>',true,true));
  53.   PageStr := GetPageStr;
  54.   // Original Title field
  55.   SetField( fieldOriginalTitle, getValue(PageStr, 'face="Verdana">','</font>',true,true));
  56.   PageStr := GetPageStr;
  57.   if((uppercase(GetField(fieldOriginalTitle))='ID') or (GetField(fieldOriginalTitle)=''))then
  58.     SetField(fieldOriginalTitle, GetField(fieldTranslatedTitle));
  59.   // Category Field
  60.   SetField(fieldCategory, getValue(PageStr, '</b><b><font size="1" color="#000080" face="Verdana">','</font></b>',true,true));
  61.   PageStr := GetPageStr;
  62.   // Director Field
  63.   SetField(fieldDirector, getValue(PageStr, '<b><font size="1" color="#000080" face="Verdana">','</font></b>',true,true));
  64.   PageStr := GetPageStr;
  65.   // Actors Field
  66.   SetField(fieldActors, getValue(PageStr, '<b><font size="1" color="#000080" face="Verdana">','</font></b>',true,true));
  67.   PageStr := GetPageStr;
  68.   // YearField
  69.   SetField(fieldYear, getValue(PageStr, '<b><font size="1" color="#000080" face="Verdana">','</font></b>',true,true));
  70.   PageStr := GetPageStr;
  71.   // Producer Field
  72.   Delete (PageStr,1,pos(uppercase('Distribuito da:'),uppercase(PageStr)));
  73.   SetField(fieldProducer, getValue(PageStr, 'face="Verdana">','</font></b></td>',true,true));
  74.   PageStr := GetPageStr;
  75.   // Duration field
  76.   Delete (PageStr,1,pos(uppercase('Durata:</font><b><font size="1" color="#FFFFFF" face="Verdana">'),uppercase(PageStr)));
  77.   SetField(fieldLength, getValue(PageStr, '</b><b><font size="1" color="#ffffff" face="Verdana">','</font></b><b>',true,true));
  78.   PageStr := GetPageStr;
  79.   // Size Field
  80.   Delete (PageStr,1,pos(uppercase('FACE="Verdana">Supporto: </FONT>'),uppercase(PageStr)));
  81.   SetField(fieldSize, getValue(PageStr, 'FACE="Verdana">','</FONT></B><BR>',true,true));
  82.   PageStr := GetPageStr;
  83.   // Description Field
  84.   Delete (PageStr,1,pos('Qualitα artistica:</font></b><font face="Verdana">',PageStr));
  85.   TempStr := getValue(PageStr, '<font size="2" face="Verdana">','</font><br>',true,true);
  86.   PageStr := GetPageStr;
  87.   HTMLRemoveTags(TempStr);
  88.   HTMLDecode(TempStr);
  89.   SetField(fieldDescription, TempStr);
  90.   // Comments Field
  91.   TempStr := getValue(PageStr, '<font size="2" face="Verdana">','</font><br>',true,true);
  92.   PageStr := GetPageStr;
  93.   HTMLRemoveTags(TempStr);
  94.   HTMLDecode(TempStr);
  95.   SetField(fieldComments, TempStr);
  96.   // Movie URL field
  97.   SetField(fieldURL, MovieUrl);
  98. end;
  99.  
  100.  
  101. // ------------------------------------------------------------------
  102. // FILL PICKTREE CONTROL WITH LINKS & TITLES or RETURN ONE PAGE LINK
  103. // if OneFilm flag true return Film Id else populate PickTree
  104. // IN:  OneFilm flag (bool)
  105. // OUT: one page ID  (string)
  106. // ------------------------------------------------------------------
  107. function PopulatePickTree(OneFilm: boolean): string;
  108. var
  109.   TempUrl: string;
  110.   TempTitle: string;
  111.   StartPos: integer;
  112.   EndPos: integer;
  113. begin
  114.   result := '';
  115.   StartPos := pos('<A HREF="', uppercase(PageStr));
  116.   Delete(PageStr, 1, StartPos - 1);
  117.   if OneFilm then
  118.     begin
  119.       StartPos := pos('<A HREF="', uppercase(PageStr));
  120.       EndPos := pos('"><DIV', uppercase(PageStr));
  121.       if StartPos > 0 then
  122.         begin
  123.           TempUrl := copy(PageStr, StartPos + 9, EndPos-Startpos - 9);
  124.           result := UrlBase + TempUrl;
  125.         end
  126.     end
  127.   else
  128.     begin
  129.       PickTreeClear;
  130.       repeat
  131.         StartPos := pos('<A HREF="', uppercase(PageStr));
  132.         EndPos := pos('?OpenDocument', PageStr);
  133.         if StartPos > 0 then
  134.           begin
  135.             TempUrl := copy(PageStr, StartPos + 9, EndPos-Startpos + 4);
  136.             Delete(PageStr, 1, EndPos + 1);
  137.             StartPos := pos('''">', PageStr);
  138.             EndPos := pos('</DIV>', uppercase(PageStr));
  139.             TempTitle := copy(PageStr, StartPos + 3, EndPos-Startpos - 3);
  140.             Delete(PageStr, 1, EndPos + 1);
  141.             PickTreeAdd(TempTitle, UrlBase + TempUrl);
  142.           end;
  143.       until(StartPos = 0);
  144.   end
  145. end;
  146.  
  147.  
  148. // ---------------------------------
  149. // ANALYZE FIRST SEARCH RESULT PAGE:
  150. // IN:  none
  151. // OUT: none
  152. // ---------------------------------
  153. procedure AnalyzeSearchPage;
  154. begin
  155.   PageStr := RemoveExtraChars(MovieUrl);
  156.   if pos('Nessun elemento trovato', PageStr) > 0 then
  157.     ShowMessage('Title not found / Nessun film trovato.')
  158.   else if pos('Si Φ verificato un errore',PageStr) > 0 then
  159.     ShowMessage('Server not available, try later / Server non disponibile, prova pi∙ tardi')
  160.   else
  161.     begin
  162.       if pos('1 elemento trovato', PageStr) > 0 then
  163.         MovieUrl := PopulatePickTree(true)    // One title found
  164.       else
  165.         begin
  166.           PopulatePickTree(false);            // More titles found..
  167.           if not PickTreeExec(MovieUrl) then  // ..select one
  168.             exit;
  169.         end;
  170.       AnalyzeMoviePage;
  171.     end;
  172. end;
  173.  
  174. // ----------
  175. // MAIN:
  176. // IN:  none
  177. // OUT: none
  178. // ----------
  179. begin
  180.   if CheckVersion(3,5,0) then
  181.     begin
  182.       TranslatedStr := GetField(fieldTranslatedTitle);
  183.       OriginalStr := GetField(fieldOriginalTitle);
  184.       if (TranslatedStr <> '') then
  185.         MovieName := TranslatedStr
  186.       else
  187.         MovieName := OriginalStr;
  188.       if (Input('AFdigitale.it - By Pivello (and others)', 'Enter the title of the movie / Inserire titolo del film:', MovieName)) then
  189.         begin
  190.          InitializePivLib;
  191.          MovieUrl := QueryBase + UrlEncode(MovieName);
  192.          AnalyzeSearchPage;
  193.          FinalizePivLib;
  194.         end;
  195.     end
  196.   else
  197.     ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
  198. end.
  199.